from dataclasses import dataclass
from typing import List

from TicketInfo import TicketInfo


@dataclass
class CombinationSolution:
    """
    一个完整的、可执行的购票方案 (一个组合好的“大插头”)
    """
    description: str              # 对此方案的描述, e.g., "【组合方案】成人票(美团) + 儿童票(去哪儿)"
    total_price: float            # 此方案的总价
    tickets: List[TicketInfo]     # 构成此方案的所有 TicketInfo 对象列表

    def __str__(self):
        return f"方案: {self.description} | 总价: ¥{self.total_price:.2f}"